package com.tarena.lbs.business.servcie;


import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.business.pojo.param.StoreParam;
import com.tarena.lbs.business.pojo.param.UserLocationParam;
import com.tarena.lbs.business.pojo.query.AreaStoreQuery;
import com.tarena.lbs.business.pojo.query.StoreChainQuery;
import com.tarena.lbs.business.pojo.query.StoreQuery;
import com.tarena.lbs.business.pojo.vo.StoreChainVO;
import com.tarena.lbs.business.pojo.vo.StoreVO;

public interface StoreService {
    PageResult<StoreVO> storeList(StoreQuery query) throws BusinessException;

    void save(StoreParam param) throws BusinessException;

    PageResult<StoreVO> getStoreByCity(AreaStoreQuery query) throws BusinessException;

    void reported(UserLocationParam param) throws BusinessException;

    void delete(Integer id) throws BusinessException;

    StoreVO selectById(Integer id) throws BusinessException;

    void update(StoreParam param);


    void enable(Integer id);

    void disable(Integer id);

    PageResult<StoreChainVO> getChain(StoreChainQuery storeChainQuery) throws BusinessException;

    void disableChain(Integer id);

    void enableChain(Integer id);
}
